package com.mathpractise.service;

import com.mathpractise.dto.request.StartTrainingRequestDTO;
import com.mathpractise.dto.response.StartTrainingResponseDTO;
import com.mathpractise.dto.request.AnswerQuestionRequestDTO;
import com.mathpractise.dto.response.AnswerQuestionResponseDTO;
import com.mathpractise.dto.response.FinishTrainingResponseDTO;
import com.mathpractise.model.TrainingSession;
import java.util.List;

/**
 * 训练服务接口
 */
public interface TrainingService {
    
    /**
     * 开始训练
     *
     * @param request 开始训练请求
     * @return 开始训练响应
     */
    StartTrainingResponseDTO startTraining(StartTrainingRequestDTO request);
    
    /**
     * 回答问题
     *
     * @param request 回答问题请求
     * @return 回答问题响应
     */
    AnswerQuestionResponseDTO answerQuestion(AnswerQuestionRequestDTO request);
    
    /**
     * 结束训练
     *
     * @param sessionId 会话ID
     * @return 结束训练响应
     */
    FinishTrainingResponseDTO finishTraining(String sessionId);

    /**
     * 获取所有训练会话
     *
     * @return 所有训练会话列表
     */
    List<TrainingSession> getAllSessions();
}